1. Field of the Invention
This invention pertains in general to serving data over a computer network, and in particular to load balancing across a set of servers providing data in response to client requests.
2. Description of the Related Art
The Internet can be a dangerous place. Many web sites on the Internet are malicious. Some sites surreptitiously provide viruses, Trojan horse programs, and other malicious software (malware). Other sites mimic the site of a legitimate organization, such as bank, in an attempt to capture confidential information through “phishing” attacks.
Users often run security software on their web-browsing clients in order to protect themselves from dangerous web sites. Some security software identifies a site that a user is visiting, and provides a visual cue or other notification indicating whether the site is dangerous. Typically, the security software must query a remote server on the Internet in order to determine whether a particular site is dangerous. There are simply too many web sites to store this information on the client.
The provider of the security software, in turn, must maintain a service for responding to the queries from the clients. Providing enough computing power to meet the demand of the clients is challenging. A set of servers providing the service might receive 50,000 requests per second. These requests must be handled quickly (e.g., within a second), in order to avoid impacting the user's web browsing experience. Moreover, the servers should be highly-available and fault tolerant so that the failure of any particular server component will not significantly impact the service. Additionally, the servers should be scalable in order to meet increases in demand.
Accordingly, there is a need in the art for a way to provide a service that meets the requirements outlined above.